@startuml


rectangle {
    (Update)
    (Application)
}

:User: --> Application: using HTTP accesses
Application <- Update: updates files of

(Manager)
(File server) as server
(Downloader) as downloader
(Verifier)
(Storage)
(Message bus) as kafka
(Security monitor) as monitor
artifact "application update" as update
artifact "update files" as updates

update ..> server: stored by
:User: ..> server: using REST\nrequests update digest from
downloader -up-> server: using HTTP\ndownloads from
updates ..> Storage: stored by

Update -down-> kafka
downloader -down-> kafka
Storage -down-> kafka
Manager -down-> kafka
Verifier -down-> kafka
monitor -up-> kafka


@enduml